home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / DMAKE38B.ARJ / SWITCHAR.C < prev    next >
C/C++ Source or Header  |  1992-01-23  |  926b  |  40 lines

  1. /*
  2. ** return switch char
  3. */
  4. #if defined(OS2) || defined(_MSC_VER)
  5. #include <stdlib.h>
  6. #endif
  7. #if !defined(OS2)
  8. #include <dos.h>
  9. #endif /* !OS2 */
  10. #include <stdio.h>
  11. #include "stdmacs.h"
  12.  
  13. getswitchar()/*
  14. ===============
  15.    Try the environment first.  If you don't find SWITCHAR there, then use
  16.    the DOS call.  The call is undocumented, and doesn't work for DOS versions
  17.    4.0 and up, so the check of the environment will fix that. */
  18. {
  19. #if defined(__MSDOS__) || defined(M_I86)
  20. #if !defined(OS2)
  21.    union REGS rg;
  22. #endif /* ! OS2 */
  23.    static char *_env_switchar = NIL(char);
  24.  
  25.    if( _env_switchar != NIL(char) ||
  26.        (_env_switchar = (char *)getenv("SWITCHAR")) != NIL(char) )
  27.       return(*_env_switchar);
  28.  
  29. #if !defined(OS2)
  30.    rg.h.ah = 0x37;      /* switch char request */
  31.    rg.h.al = 0;         /* get (not set) */
  32.  
  33.    intdos(&rg, &rg);
  34.    return (rg.h.dl);
  35. #endif /* ! OS2 */
  36. #endif /* M_I86 */
  37.  
  38.    return ('-');
  39. }
  40.